[Lighttpd] Hosty wirtualne oparte na bazie MySQL

Kategoria: FAQ, etykiety: lighttpd, virtualhost

Dodany: 2010-06-27 16:27 (zmodyfikowany: 2010-06-27 17:15)
Przez: jezoo

Wyświetleń: 7085

Jeżeli masz już zainstalowanego Lighttpd, MySQL i chcesz mieć porządek z hostami wirtualnymi to poniżej podaje w jaki sposób można szybko skonfigurować Lighttpd.

Zaczynamy.

Na początek tworzymy tabele np **vhosts o następującej strukturze:

CREATE TABLE IF NOT EXISTS vhosts (
       domain varchar(68) COLLATE utf8_unicode_ci NOT NULL,
       docroot varchar(128) COLLATE utf8_unicode_ci NOT NULL,
       UNIQUE KEY domain (domain,docroot)
);

Następnie tworzymy usera dla tej bazy:

GRANT SELECT ON twojabaza.vhosts TO lighttpd@localhost identified by 'Tajne Haslo';

Wstawiamy przykladowe dane:

INSERT INTO vhosts VALUES('sub.domena.tld','/home/vhosts/przyklad');

Kolejnym krokiem jest skonfigurowanie Lighttpd. Otwieramy plik konfiguracyjny (/etc/lighttpd/lighttpd.conf) Dodajemy moduł:

server.modules += ("mod_mysql_vhost")

Następnie połączenie do bazy danych:

mysql-vhost.db = "twojabaza"
mysql-vhost.user = "vhosts"
mysql-vhost.pass = "Tajne Haslo"
mysql-vhost.sock = "/tmp/mysql.sock"
mysql-vhost.sql = "SELECT docroot FROM vhosts WHERE domain='?';"
mysql-vhost.hostname = "localhost"
mysql-vhost.port = 3306

Na koniec restartujemy serwer i sprawdzamy naszego wirtualnego hosta.

Problemy jakie możesz napotkać
1) domena główna musi być zdefiniowana w pliku konfiguracyjnym

$HTTP["host"] == "domena.tld" {
     server.document-root = "/home/katalog/domeny/glownej"
}

i ostatnia oczywista sprawa, katalog domeny wirtualnej musisz stworzyć ręcznie no chyba, że zrobisz to z automatu przez skrypt :)

OSnews Wykop Blip Flaker Kciuk Śledzik Facebook Identi.ca Twitter del.icio.us Google Bookmarks